package comprasdiretas.ejb;
import java.sql.Date;
import java.util.HashMap;
import java.util.List;

import javax.ejb.Local;

import comprasdiretas.entity.AdministrativoEntity;
import comprasdiretas.entity.CompraDiretaEntity;
import comprasdiretas.exception.ObjetoJaCadastradoException;
import comprasdiretas.exception.ParametroNullException;
import comprasdiretas.util.ItemDetalhes;

@Local
public interface CompraDiretaControllerLocal {
	public int cadastrarInexigibilidadeDispensa(Date data, int artigo, int fornecedor, int pedido,
    		int servidor, char tipo, char empenhoTipo) throws ParametroNullException, ObjetoJaCadastradoException;
	public List<CompraDiretaEntity> consultaInexigibilidadeDispensa(int numero);
	public List<CompraDiretaEntity> consultaInexigibilidadeDispensa(char tipo);
	public List<CompraDiretaEntity> consultaInexigibilidadeDispensa(int numero, char tipo);
	public AdministrativoEntity consultaDadosAdministrativos();
	public void alteraDadosAdministrativos( String instituicao, String reitorNome, String licitacaoCoordenador)
		throws Exception;
	public List<CompraDiretaEntity> consultaInexigibilidadeDispensa(Date dataInicio, Date dataFim);
	public List<CompraDiretaEntity> consultaInexigibilidadeDispensa(Date dataInicio, Date dataFim, char tipo);
	public List<CompraDiretaEntity> consultaInexigibilidadeDispensa(Date dataInicio, Date dataFim, int numero, char tipo);
	public List<CompraDiretaEntity> listarInexigibilidadeDispensa();
	public void removerInexigibilidadeDispensa(CompraDiretaEntity remover) throws Exception;
	public void removerCompraDiretaItem(CompraDiretaEntity remover) throws Exception;
	public void atualizaInexigibilidadeDispensa(int id, Date data, int artigo, int fornecedor, int pedido,
    		int servidor, char empenhoTipo,HashMap<String,ItemDetalhes> itens)
			throws Exception;
	public int getNumeroDispensa();
	public void setNumeroDispensa(int numDispensa) throws Exception;
	public int getNumeroInexigibilidade();
	public void setNumeroInexigibilidade(int numInexigibilidade) throws Exception;
	public boolean numeroCompraDiretaJaCadastrado(char tipo)throws Exception;
	public List<CompraDiretaEntity> consultaComprasComElementosNaoDetalhados()throws Exception;
	public HashMap<String,ItemDetalhes> getItens(CompraDiretaEntity compraDireta)throws Exception;
	public void cadastraItensCompraDireta(int id,HashMap<String,ItemDetalhes> itens) throws ParametroNullException;
	public CompraDiretaEntity getCompraDireta(int numero,Date data) throws Exception;
}
